package com.ddpt.platform.common.base;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Collection;
import java.util.List;

public interface BizService<T extends BizEntity> extends IService<T> {

    /**
     * 获取单条记录
     * @param t
     * @return
     */
    T get(T t);

    /**
     * 是否存在
     */
    boolean exists(T t);

    /**
     * 是否存在
     */
    boolean exists(Wrapper<T> queryWrapper);

    /**
     * 获取单挑记录
     * @param queryWrapper
     * @return
     */
    T get(Wrapper<T> queryWrapper);

    /**
     * 依据不为空的字段进行查询
     * @param t
     * @return
     */
    List<T> list(T t);

    /**
     * 依据不为空的字段进行查询
     * @param page
     * @param t
     * @param <E>
     * @return
     */
    <E extends IPage<T>> E page(E page, T t);

    /**
     * 伪删除，将deleted字段修改为1
     * @param idList
     * @return
     */
    boolean deleteByIdsNotRemove(Collection<Long> idList);

    /**
     * 根据ids集合，ids多条使用逗号分隔
     * @param ids
     * @return
     */
    List<T> getBySplitIds(String ids);
}
